#ifndef _LED_TABLES_H_
#define _LED_TABLES_H_

#include <colorFormula.h>

typedef enum{
  CO_R_GROUP_2 = 0,
  CO_R_GROUP_3,
  CO_R_GROUP_4,
}CTRedCoordinate_t;

typedef enum{
  CO_G_GROUP_2 = 0,
  CO_G_GROUP_3,
  CO_G_GROUP_4,
  CO_G_GROUP_5,
  CO_G_GROUP_6,
  CO_G_GROUP_7,
  CO_G_GROUP_8,
  CO_G_GROUP_9
}CTGreenCoordinate_t;

typedef enum{
  CO_B_GROUP_H = 0,
  CO_B_GROUP_I,
  CO_B_GROUP_J,
  CO_B_GROUP_K,
  CO_B_GROUP_L,
  CO_B_GROUP_M,
  CO_B_GROUP_N,
  CO_G_GROUP_O,
  CO_B_GROUP_P,
  CO_B_GROUP_Q,
  CO_G_GROUP_R
}CTBlueCoordinate_t;

typedef enum{
  R_MAX_LUMEN_UE,
  R_MAX_LUMEN_UF,
  R_MAX_LUMEN_UG,
  R_MAX_LUMEN_UH,
  R_MAX_LUMEN_UI,
  R_MAX_LUMEN_UJ,
  R_MAX_LUMEN_VC,
  R_MAX_LUMEN_VD,
  R_MAX_LUMEN_VE,
}rMaxLumen_t;

typedef enum{
  G_MAX_LUMEN_AM,
  G_MAX_LUMEN_AN,
  G_MAX_LUMEN_AO,
  G_MAX_LUMEN_AP,
  G_MAX_LUMEN_AQ,
}gMaxLumen_t;

typedef enum{
  B_MAX_LUMEN_SC,
  B_MAX_LUMEN_SD,
  B_MAX_LUMEN_SE,
  B_MAX_LUMEN_SF,
  B_MAX_LUMEN_SG,
  B_MAX_LUMEN_SH,
  B_MAX_LUMEN_SI,
  B_MAX_LUMEN_SJ,
  B_MAX_LUMEN_TC,
  B_MAX_LUMEN_TD,
  B_MAX_LUMEN_TE,
  B_MAX_LUMEN_TF,
  B_MAX_LUMEN_TG,
  B_MAX_LUMEN_TH,
  B_MAX_LUMEN_TI,
  B_MAX_LUMEN_TJ,
  B_MAX_LUMEN_UC,
}bMaxLumen_t;

#define BIN_NUM_MAX_XY_RED              (3)
#define BIN_NUM_MAX_XY_GREEN            (8)
#define BIN_NUM_MAX_XY_BLUE             (11)

#define BIN_NUM_MAX_LUMEN_RED           (9)
#define BIN_NUM_MAX_LUMEN_GREEN         (5)
#define BIN_NUM_MAX_LUMEN_BLUE          (17)

extern const Coordinate_t TABLE_BIN_XY_RED[BIN_NUM_MAX_XY_RED][4];
extern const Coordinate_t TABLE_BIN_XY_GREEN[BIN_NUM_MAX_XY_GREEN][4];
extern const Coordinate_t TABLE_BIN_XY_BLUE[BIN_NUM_MAX_XY_BLUE][4];

extern const uint16_t TABLE_BIN_LUMEN_RED[BIN_NUM_MAX_LUMEN_RED];
extern const uint16_t TABLE_BIN_LUMEN_GREEN[BIN_NUM_MAX_LUMEN_GREEN];
extern const uint16_t TABLE_BIN_LUMEN_BLUE[BIN_NUM_MAX_LUMEN_BLUE];

#define TEMP_CMP_NUM_MAX      (16)

#define MAX_RED_INTENSITY_INDEX   13 // Max intensity of Red, beasuse red has more degradation
extern const TempCompensation_t TABLE_CMP_INTENSITY_RED[TEMP_CMP_NUM_MAX];
extern const TempCompensation_t TABLE_CMP_INTENSITY_GREEN[TEMP_CMP_NUM_MAX];
extern const TempCompensation_t TABLE_CMP_INTENSITY_BLUE[TEMP_CMP_NUM_MAX];





























#endif